/**
 * MCP 时间服务器主入口文件
 * 这是整个应用的启动点，负责：
 * - 启动MCP服务器
 * - 处理进程生命周期
 * - 错误处理和日志记录
 */

import { startServer, setupGracefulShutdown } from './server.js';

/**
 * 主函数 - 应用启动入口
 * 这个函数是MCP服务器启动的起点
 */
async function main() {
  try {
    console.log("=== MCP 时间服务器 ===");
    console.log("版本: 1.0.0");
    console.log("描述: 一个用于学习MCP开发的时间服务器示例");
    console.log("作者: 你的名字");
    console.log("========================");
    
    // 启动MCP服务器
    // 这个函数会阻塞进程，保持服务器运行
    await startServer();
    
  } catch (error) {
    console.error("应用启动失败:", error);
    process.exit(1);
  }
}

/**
 * 未捕获异常处理
 * 捕获任何未处理的异常，确保应用优雅退出
 */
process.on('uncaughtException', (error) => {
  console.error("未捕获的异常:", error);
  process.exit(1);
});

/**
 * 未处理的Promise拒绝处理
 * 捕获任何未处理的Promise拒绝
 */
process.on('unhandledRejection', (reason, promise) => {
  console.error("未处理的Promise拒绝:", reason);
  console.error("Promise:", promise);
  process.exit(1);
});

// 启动应用
// 如果这个文件被直接运行（而不是被导入），则启动服务器
if (import.meta.url === `file://${process.argv[1]}`) {
  main();
} 